/**
 * 本地服务器示例
 * 演示如何使用本地 OpenAI 兼容服务器
 */
const { OpenAI } = require('openai');

// 创建 OpenAI 客户端实例，连接到本地服务器
const openai = new OpenAI({
  baseURL: 'http://localhost:3001/api/openai', // 注意端口是 3001
  apiKey: 'dummy-api-key', // 这个值可以是任意的，因为本地服务器不验证它
});

// 聊天示例
async function chatExample() {
  try {
    console.log('Running chat example with local server...');
    
    const response = await openai.chat.completions.create({
      model: 'qwen-max', // 使用通义千问大模型
      messages: [
        { role: 'user', content: '你好，请介绍一下自己' }
      ],
      temperature: 0.7,
      max_tokens: 500
    });
    
    console.log('Chat response:');
    console.log(response.choices[0].message.content);
    console.log('\nFull response:');
    console.log(JSON.stringify(response, null, 2));
  } catch (error) {
    console.error('Chat error:', error);
    if (error.response) {
      console.error('Status:', error.response.status);
      console.error('Data:', error.response.data);
    }
  }
}

// 图像分析示例（使用 URL）
async function imageAnalysisWithUrl() {
  try {
    console.log('Running image analysis example with local server...');
    
    const response = await openai.chat.completions.create({
      model: 'qwen-vl-max', // 使用通义千问视觉大模型
      messages: [{
        role: 'user',
        content: [
          { type: 'text', text: '这是什么？' },
          { 
            type: 'image_url',
            image_url: {
              url: 'https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg'
            }
          }
        ]
      }]
    });
    
    console.log('Image analysis response:');
    console.log(response.choices[0].message.content);
    console.log('\nFull response:');
    console.log(JSON.stringify(response, null, 2));
  } catch (error) {
    console.error('Image analysis error:', error);
    if (error.response) {
      console.error('Status:', error.response.status);
      console.error('Data:', error.response.data);
    }
  }
}

// 运行示例
async function runExamples() {
  // 聊天示例
  await chatExample();
  console.log('\n' + '-'.repeat(50) + '\n');
  
  // 图像分析示例
  await imageAnalysisWithUrl();
}

// 执行示例
runExamples();
